home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / sources.arc / DANG_SRC.LZH / VCOLOR.C < prev   
Encoding:
C/C++ Source or Header  |  1987-04-22  |  1.4 KB  |  100 lines

  1. /*
  2.   vq_color()
  3. */
  4.  
  5. #include <gemdefs.h>
  6.  
  7. int contrl[12];
  8. int intin[256],  ptsin[256];
  9. int intout[256], ptsout[256];
  10.  
  11. /*
  12.     This is for saving and restoring color values
  13. */
  14. int tmp_rgb[16][3];
  15.  
  16. main()
  17. {
  18.     MFDB    source;
  19.     int        handle;
  20.  
  21.     /*
  22.         Start up ROM.
  23.     */
  24.     appl_init();
  25.     handle = open_workstation(&source);
  26.  
  27.     /*
  28.         Do neat things.
  29.     */
  30.     save_colors(handle);
  31.     fade_to_black(handle);
  32.     restore_colors(handle);
  33.  
  34.     /*
  35.         Wait & Close the virtual workstation.
  36.     */
  37.     wait(handle);
  38.     v_clsvwk(handle);
  39.     appl_exit();
  40. }
  41.  
  42. #define SET  1
  43. #define ACTUAL   1
  44.  
  45. #define RED   0
  46. #define GREEN 1
  47. #define BLUE  2
  48.  
  49. fade_to_black(handle)
  50. int handle;
  51. {
  52.     int rgb[3];
  53.     int color;
  54.  
  55.     /*
  56.         For each color
  57.     */
  58.     for (color=0; color<16; color++) {
  59.         vq_color(handle, color, ACTUAL, rgb);
  60.        
  61.         /*
  62.             Fade each color gun value
  63.         */
  64.         while(rgb[RED] | rgb[GREEN] | rgb[BLUE]) {
  65.             if (rgb[RED])   rgb[RED]--;
  66.             if (rgb[GREEN]) rgb[GREEN]--;
  67.             if (rgb[BLUE])  rgb[BLUE]--;
  68.  
  69.             vs_color(handle, color, rgb);
  70.         }
  71.     }   
  72. }
  73.  
  74. save_colors(handle)
  75.     int handle;
  76. {
  77.     int color;
  78.  
  79.     /*
  80.         Save current values for Red, Green, and Blue
  81.     */
  82.     for (color=0; color<16; color++)
  83.         vq_color(handle, color, SET, tmp_rgb[color]);
  84.  
  85. }
  86.  
  87. restore_colors(handle)
  88.     int handle;
  89. {
  90.     int color;
  91.  
  92.     /*
  93.         Restore previous values
  94.     */
  95.     for (color=0; color<16; color++)
  96.         vs_color(handle, color, tmp_rgb[color]);
  97.  
  98. }
  99.  
  100.